﻿CREATE PROCEDURE [dbo].[usp_insert_AlertEmail]
(
	 @AlertSubscriptionHistoryID	uniqueidentifier
	,@To						varchar(256)
	,@Subject					varchar(1024)
	,@Body						varchar(max)
	,@Sent						bit
	,@BatchID					uniqueidentifier
	,@Debug						bit			   = 0
)
AS

/****************************************************************************
Name: usp_insert_AlertEmail.sql
Description: 
*****************************************************************************/
SET NOCOUNT ON;

-- Bootstrap
DECLARE @DebugPrefix       varchar(10);
DECLARE @ErrorCode         int;

SET @ErrorCode          = 0;
SET @DebugPrefix        = '>>> DEBUG: ';

-- Print parameters
IF (@Debug > 0)
BEGIN
	PRINT @DebugPrefix + '@AlertSubscriptionHistoryID = '	+ CONVERT(varchar, @AlertSubscriptionHistoryID);
	PRINT @DebugPrefix + '@Subject = '						+ @Subject;
	PRINT @DebugPrefix + '@Body = '							+ @Body;
	PRINT @DebugPrefix + '@Sent = '							+ CONVERT(varchar, @Sent);
	

END;



INSERT INTO [dbo].[AlertEmail]
           ([AlertEmailID]
			,[To]
			,[AlertSubscriptionHistoryID]
			,[Subject]
			,[Body]
			,[Sent]
			,[BatchID]
            ,[InsertedDate]
			)
     VALUES
           (NEWID()          
			,@To
			,@AlertSubscriptionHistoryID
			,@Subject
			,@Body
			,@Sent
			,@BatchID
			,GetUTCDate()
           )


-- CHECK FOR ERROR
SET @ErrorCode = @@Error;

IF (@ErrorCode <> 0) GOTO ERROR_HANDLER;

RETURN 0;

-- Handles errors.
ERROR_HANDLER:
IF (@ErrorCode <> 0)
BEGIN
    IF (@Debug > 0) 
		BEGIN
			PRINT @DebugPrefix + 'Error Code = ' + CAST(@ErrorCode AS varchar(10)) + ' occurred while executing dbo.usp_insert_AlertSubscriptionHistory.';
			RETURN @ErrorCode
		END

    -- Don't return any evidence of what specific error occurred, i.e. 
    -- we want to ward off potential hackers.
    RETURN 1;
END;

SET NOCOUNT OFF;
